
Changes in KEGS v0.70 since v0.60 (11/18/02)
- New buttons: Middle button is enter-debugger, and right button changes speed
- New function key mapping (see README.kegs)
- Mac OS X port
- Win32 port
- Centralized much of what had been "xdriver.c" code into video.c, to move
	true platform-specific stuff into the various *driver.c codes.
	Kimage struct tracks video display buffers in a dev-independent way.
	From video.c, the calls to the platform code start with "x_" mostly.
	Code in video.c cleaned up somewhat.
	Borders are now always in native buffer format, while text/hires/
	and superhires are in 8-bit buffers and translated to native later.
- Mac and Windows sound are all done in one process--no child sound process.
- Revamped key press handling and mouse clicks--all is now handled in
	adb.c for a consistent user interface.  Now KEGS implements the
	same function keys on all platforms.  See README.kegs for fn key maps.
- I copied the debugger help from Frederic Devernay's KEGS-SDL port.
- Fixed an old IWM bug causing bad nibblization due to using uninit vars.
- Gilles Tschopp workaround to use corrupted 2IMG files (from KEGS-OSX).
- Gilles Tschopp provided code to zero //gs memory at startup (from KEGS-OSX)
- Simple code to try to use Mac Diskcopy format disks
- Ignore writes to 0xc0a8
- Search in $HOME and the launch directory (for mac) for kegs_conf/ROM
- Remove font65.sim file by integrating it into kegsfont.h.
- "-bw" option forces black and white hires mode.


Changes in KEGS v0.60 since v0.59 (10/03/00)
- The 16-bit colors were still wrong due to another coding error.  It would
	be much easier to get this right if I had a 16-bit color display...
	A user says it works now.

Changes in KEGS v0.59 since v0.58 (7/07/00)
- Added support for multiple paths to the default files and also multiple
	names for many default files.  This should make the .rpm distribution
	work better.
- Add another keycode to mean break according to mic@research.nj.nec.com.
- Add support for various ROMs to get plugged into slot 1-7.
- Fix code so that it should compile on 64-bit platforms.

Changes in KEGS v0.58 since v0.57 (2/08/00)
- Setting the execute bit on the disk image no longer means no-write-thru.
	Too many new users were getting confused by this.
- Fixed another bug with Apple //e bank switching created by v0.56
	Reported by phoenyx.
- Add command line option "-v" to turn on some verbose debugging flags.
- Fixed potential core-dump bug with non-8 bit visuals.
- Fixed double-lo-res color problem.
- The X driver should work with any visual depth display now and get the
	colors right.  Ian Schmidt reported his 16-bit card had bad colors.

Changes in KEGS v0.57 since v0.56 (12/27/99)
- Another try at making timezone stuff work across all Unix variants.
	Let me know if the time in the Apple //gs control panel doesn't
	match your real local time.
- Fix a bug created in v0.56 where the fast //e bank switch code had a typo.
	This prevented ZBasic from working correctly.

Changes in KEGS v0.56 since v0.55 (10/31/99)
- Faster Apple //e bank switch emulation.
- Simplified number of global variables for various softswitches.
- Fixed a bug which made 3.5" and 5.25" disk access much slower than necessary.
- Improved scan-line interrupt accuracy (lets MEGADEMO run).
- Improved sound interrupt accuracy (was hoping this would fix some sound
	issues, but it doesn't seem to help).
- Add Mode_switch as an alias for the Option key
- I noticed the //gs self-tests were broken again--fixed.
 
Changes in KEGS v0.55 since v0.54 (10/19/99)
- In LOG_PC debug aid, add cycles to the trace
- Fix MEGADEMO bug where 3.5" disks weren't properly ejected.  Needed to
	look at iwm.motor_on35 not iwm.motor_on.
- Temp fix for MEGADEMO to not halt if shadow-in-all-banks is on in $c036.
- Another MEGADEMO fix to not take a scan-line int if the SCB was cleared
	right before the raster got to this line.
- Fix bug in smartport.c that was causing core dumps if you tried to init
	a disk is s7dx.

Changes in KEGS v0.54 since v0.53 (10/10/99)
- Add support for Out Of This World's direct reading of ADB RAM loc 0xb to
	get key status.  This lets shift/control work in OOTW.
- Code simplification to get rid of most set_halt() calls and use halt_printf.
- Speed improvement: track kpc (merged kbank and pc in one 32 bit variable)
	which makes the inner loop faster.  This does make KEGS not
	accurately model a 65816 code crossing bank boundaries, but just
	about every other emulator gets it wrong, and the speed improvement
	is 5-10%.  And I don't know of any code which relies on it
	working correctly.
- Fix to allow better GS/OS compatibility: after each smartport call,
	set 0x7f8 = 0xc7.
- Fixed ZipGS emulation bug where KEGS was not re-locking Zip at the right
	time, which made double-hires not work after booting GS/OS.

Changes in KEGS v0.53 since v0.52 (8/3/99)
- Move all the "fcycles" timing calculations to use double instead of float.
- Fix display shadowing bug reported by "phoenyx" which caused the text
	display to not always be updated correctly with funny bank switching.
- Added the "Home" key as an alias for the '=' on the keypad.
- Changed the way X modifiers are interpreted to increase compatibility of
	Caps Lock to more X servers.
- Add -dhr140 option to use old double-hires color mode that results in
	exactly 140 horizontal pixels with no bleeding.  It's set default
	to "on" for now while I work out double-hires colors.
- Started adding some ZipGS compatibility--control panels run, but all
	the controls are effectively ignored by KEGS.

Changes in KEGS v0.52 since v0.51 (6/27/99)
- Small speed-up of interpreter loop to avoid checking the global variable
	"halt_sim" after every instruction.
- Smartport fixes to avoid halts when the SCSI CD player NDA is installed.
- Fix to autodetect X visual depth (it didn't work at all in v0.51).
- Fix to HP binary--KEGS v0.51 hit an HP linker bug which caused the
	executable to not run correctly.  (It didn't obey an assembly-
	language alignment command correctly).  Re-ordering the object
	list works around the problem.

Changes in KEGS v0.51 since v0.50 (6/1/99)
- Fixed many bugs that crept into scanline interrupts over the last few months.
- RAM size is now settable on the commandline: -mem 0x400000 will use
	a 4MB expansion RAM card (giving you 4.25MB of memory with ROM 01).
- VBL time used to be a variable (which was wrong)--it's now always the
	same number of cycles.
- Typo preventing joystick_driver.c from compiling fixed.
- Auto senses X visual depth, searching for 8 bit, then 15 bit, then 24,
	then 16 bit visuals.  Can still override this with commandline.

Changes in KEGS v0.50 since v0.49 (5/31/99)
- Added Linux joystick support with code provided by Jonathan Stark.
	Activate with "-joystick" command line option.
- Small improvements in s7 device handling.  If you have no s7 devices or no
	bootable devices, KEGS launches Applesoft.
- Bug fix in scan-line interrupts--they were occurring at the wrong time
	previously.
- Rewrote double-hires color routines.  They're still not quite right,
	but it's a lot better than it used to be.

Changes in KEGS v0.49 since v0.48 (5/3/99)
- Fixed a key-repeat bug in v0.48 caused usually with shift-key sequences.
- Fixed bug where GNO would not work with ROM 03.  ROM area at $C071-$C07F
	is different from ROM 01.
- Ian Schmidt pointed out a special Ensoniq case where an oscillator in
	one-shot mode can cause it's partner to start if it is in swap mode.
- Integrated in Geoff Weiss's Solaris x86 ports.  I might have broken it
	making a few last-minute changes...

Changes in KEGS v0.48 since v0.47 (4/13/99)
- Even better ADB key repeat--key rollover works more like a real Apple //gs.
- IWM fix: some "smarport" modes were being activated sometimes during
   normal 3.5" accesses, resulting in some games not loading correctly.
- Some fixes to serial port emulation to handle programs writing to
   the serial port in MIDI mode when the chars will not be consumed.
- Smartport fix to set zero-page locations $42-$47, needed by some poorly-
   written game loaders
- The "oscilloscope" effect in some sound-demos now shows the sounds
   being played.

Changes in KEGS v0.47 since v0.46 (4/7/99)
- ADB fix #1: reading $c010 should give key-down status better
- ADB fix #2: key repeat was stopping if modifier key pressed
- ADB fix #3: The game "Pirates" was crashing on startup due to a small bug.
- Bard's Tale 2 was freezing on startup due to a bug in the WAI instruction.
- Major serial port rewrite.  Diversi-Tune now runs and sound OK (but there
	are some small problems) and serial port emulation is better.

Changes in KEGS v0.46 since v0.45 (3/21/99)
- Fix for undefined var in engine_c.c.  Oops.
- Fix for old bug in engine_c.c causing KEGS to sometimes misinterpret
   instructions which cross page boundaries.  Was causing Thexder not
   to work, at least.

Changes in KEGS v0.45 since v0.44 (3/20/99)
- Fix for COP instruction in engine_c.c.  Pointed out by Kelvin Sherlock.
- Major fixes to Ensoniq emulation, SynthLab sounds much better.
- Fix to iwm.c to deal with corrupt 2IMG archives a little better.

Changes in KEGS v0.44 since v0.43 (2/23/99)
- -audio 0 option would often cause programs to hang.  Bug was that the
   audio rate was defaulting to '0' which confused KEGS.
- Made keycode 0x072 be the XK_Break key for XFree86

Changes in KEGS v0.43 since v0.42 (2/19/99)
- Support .nib 5.25" format as read-only
- Faster 3.5" nibblization routines (should make startup faster)
- Fixed a very-old 3.5" disk writing bug that made bit-copiers not work

Changes in KEGS v0.42 since v0.41 (2/1/99)
- Include <errno.h> to fix Linux compile problem
- Fix relative branch timing bug that was making IWM emulation flaky
   (backward branches should count as 3 cycles if to the same page,
    and 4 if to a different page in emulation mode.  Bug always counted
    them as 4)
- Gave up on fast 5.25" writes--KEGS always slows to 1MHz for 5.25"
   writes since the timing and kludges just got too annoying.
- add "-arate 22050" option to change audio sample rate on the command-line.
   Slower audio rates can hit more audio bugs (I'm working on them).
- fixed little-endian bug in smartport.c and partls.c
- fixed side border redraw bug that would sometimes leave super-hires
   images on the right-side border.

Changes in KEGS v0.41 since v0.40 (1/19/99)
- Fixed bug where fill-line mode would not always redraw the screen correctly
- Changed some // comments to /* */ to help David Wilson's Solaris port
- Fixed little-endian bugs in smartport.c preventing mounting of
   parititioned disks.  Fix submitted by Jonathan Stark.
- Christopher Neufeld noted that fast space/delete option in the control
   panel caused KEGS to hit breakpoints.  I fixed this and fast arrows and
   fast mouse options (they are now just ignored).
- Solaris port by David Wilson now provides a Makefile_solaris

Changes in KEGS v0.40 since v0.39 (10/25/98)
- 15 and 24 bit depth displays now supported (though somewhat slower than
	8 bit displays).  But Super-hires displays now show 256
	simultaneous colors on a 16- or 24-bit X display.
	Select a 15-bit display with the cmd line option "-15" and
	a 24-bit display with "-24".  Otherwise, KEGS defaults to looking
	for an 8-bit display, and fails if it cannot find one.
- Some border fixes--border colors now update correctly when palette
	changes occur (like via F10).
- Alias F1 to ESC for OS/2.

Changes in KEGS v0.39 since v0.38 (9/13/98)
- OS/2 port by Tschopp Gilles
	- handle cr&lf better in disk_conf
	- Drive letters work and are not confused with partition names, so
		s7d1 = D:\images\cd:1 will open partition 1 correctly.
	- KEGS no longer uses system() to do file copies, it does it all
		using POSIX calls.
	- Unix-specific socket calls moved from scc.c to scc_driver.h
	- Default X handler re-installed properly now for better debug
- Nasty core dump bug found and fixed by Tschopp Gilles in disk switch code

Changes in KEGS v0.38 since v0.37 (7/28/98)
- IWM bugs:
	- fast_disk_emul off under GS/OS caused I/O errors.
	  KEGS was always slowing down to 1MHz when 5.25" drive was on, when
	  it should have been obeying the $C036 register.
	- bug in IWM on little-endian processors
- disk ejection should now work, but a beta user claimed some bugs on
	x86 Linux.
- 2IMG support, but only lightly tested.
- Removed some internal breaks on access to $C0B0 for tool033.
- Modulae also stumbled into some breakpoints by writing to $C02F,
	which does nothing.
- Screen refresh simplified (for me) by redrawing the screen while
	raster is on first scan-line, rather than line 200.
	However, a side effect is some of the graphics during the XMAS DEMO
	look a bit choppier.
- More SCC fixes to avoid breakpoints under GNO.
- Start support for sound under Linux, but it sounds horrible right now.
	Any Linux sound gurus want to help out?
- Fixed possible array-overrun bug in video.c around border effects.
	Maybe shared memory works under x86 Linux now?
- Made changes for OS/2 port to fopen() text files.  From Blue Neon.


Changes in KEGS v0.37 since v0.36 (7/13/98)
- Linux PPC port completed and functional.  KEGS has been tested to
  run quite well and quite fast on a 240MHz 604e running
  MkLinux pre-DR3.
- Change LITTLE_ENDIAN define to KEGS_LITTLE_ENDIAN since Linux
  always defines LITTLE_ENDIAN as a silly macro.
- Dumb bug in IWM 3.5" routines could cause core dumps if disk arm moved
  from outer track to inner track very quickly.
- Deleted some breakpoints that some Second Sight searching code would hit.
- Ignore some SCC reset commands GNO would use that caused KEGS to stop.
- Handle odd partitions better--some //gs formatted Zips had a blocksize
  of 0, which defaults to 512 now.
- Handle some keysyms better to avoid MkLinux bug with keysym 0.

Changes in KEGS v0.36 since v0.35 (5/30/98)

- Linux x86 port completed and functional with help from Karl Pfleger
- Linux clock fixes--should handle daylight savings better on Linux
- LITTLE_ENDIAN defines
- Start making fixes for NeXTStep due to Eric Sunshine
- Fixed bug in HP asm code with I/O fetches--caused //gs selftests to fail
  and a bug in scc.c was also causing self-tests to fail.

Changes in KEGS v0.35 since v0.34 (5/17/98)

- engine_c.c fully implemented--KEGS now has a version completely written
   in C, and now portable to other Unix machines.
- KEGS got another 5% faster with more tweaks to the asm dispatch loop.

Changes in KEGS v0.34 since v0.33

- KEGS is 10-15% faster due to finally implementing a planned recoding
   of the dispatch loop.

Changes in KEGS v0.33 since v0.32 (5/7/98)

- Fixed bug in engine_s.s that prevented compiling on pre-10.20 systems.
- ADB mouse interrupts work now.  Fixed "bug" where GSHK would think
   mouse button was depressed at startup. (GS/OS is looking at mouse
   button 1 status, which accidentally was reading as down).
- ADB emulation of read char_sets and read_kbd_layouts now matches a real
   //gs.
- optimization to allow dereferencing page_info[] even if BANK_IO is set,
   to get a small speed improvement in engines_s:dispatch().
- SCC logs are 'Z' at the disas prompt.
- Tool decoded is 'T' at the disas prompt.
- SCC changes to support slot 1 == port 6501 and slot 2 == port 6502,
   with limited interrupt support.  Most serial tasks won't work still,
   but some do.  PR#1/2 and IN#1/2 work fine.  getty under GNO doesn't.
- -audio [0/1] forces audio off/on.  This just stops the sound playing--
   internally all Ensoniq interrupts/etc are fully emulated.  If display
   is not using shared memory (i.e., it's remote), audio defaults to off.
   (but can be forced on with -audio 1).
- -display {foo} sends X display to {foo}.

Changes in KEGS v0.32 since v0.31 (10/23/97)

- Faster dispatch loop, for a 10-15% overall performance improvement
- Fixed sound bug where Oversampler would make KEGS halt (Oversampler
   said turn on 128 oscillators, and KEGS tried to...)
- Fixed bug where KEGS would not work on 24-bit displays due to a typo.
- Added frame skipping support (-skip n) and auto frame skipping if you
   are not using shared memory (like displaying KEGS to a remote machine).
- Added -noshm support for forcing off shared memory, so you can see how
   much it helps.

Changes in KEGS v0.31 since v0.30 (9/23/97)

- New mouse handling--Press F8 to hide X windows cursor and constrain
	cursor inside window.  Makes using the mouse much easier.
	F8 toggles back to normal.
- Add revision to status area.
- Remove "slow memory" calculation.  KEGS was emulating slowing down to
	1MHz to write to slow memory (bank $E0 or $E1).  But true //gs
	accelerators have a smarter trick, so I just removed it from
	KEGS.  KEGS still slows down for I/O reads and writes.
	This eliminates the confusing 40MHz speed numbers you'd sometimes get.
	KEGS can also now run faster when it would have slowed down to
	1MHz before.
- Turn off accurate IWM emulation be default, for much faster emulation.
	Bit copiers won't work by default now.  Toggle accurate IWM
	with F7.  Accurate IWM forces 1MHz speed for 5.25" and 2.5MHz for
	3.5", but less accurate IWM runs as fast as possible.
- Add optional size to s7dx entries in disk_conf, to allow using /dev/rfloppy.
- Allow mounting partitions by number, instead of just by name, since some
	Mac-formatted Zip disks don't have partition names.
- Add -ignbadacc to ignore bad memory accesses.
- Increase MAX_C030_TIMES.  Otherwise, fast workstations could generate too
	many clicks per VBL, causing an assertion to fail.
- Small speed increase detecting changes in the superhires screen.
- Alt_L is now Open-Apple, and Alt_R is Closed-Apple.
- KEGS now uses just one private colormap, so xwd can get screendumps.


